package com.yc.common.utils;

import com.yc.exception.BizException;

import java.lang.reflect.Array;
import java.util.Collection;
import java.util.Map;

public class ValueUtils {

    /**
     * 测试 bool 的值, 如果为 true, 则抛出业务异常
     * @param bool
     * @param errorMsg
     * @throws BizException
     */
    public static void check(boolean bool, String errorMsg) throws BizException {
        if (bool) {
            throw new BizException(errorMsg);
        }
    }
    /**
     * 测试 value 是否为空, 则抛出业务异常
     * @param value
     * @param errorMsg
     * @throws BizException
     */
    public static void checkEmpty(Object value, String errorMsg) throws BizException {
        check(isEmpty(value), errorMsg);
    }
    /**
     * 判断 obj 是否是空对象,空字符, 空集合, 空数组
     * @param obj
     * @return
     */
    public static boolean isEmpty(Object obj){
        if(obj == null){
            return true;
        } else if(obj instanceof String){
            return ((String) obj).trim().isEmpty();
        } else if(obj instanceof Collection){
            return ((Collection) obj).isEmpty();
        } else if(obj instanceof Map){
            return ((Map) obj).isEmpty();
        } else if (obj.getClass().isArray()){
            return Array.getLength(obj) == 0;
        } else {
            return false;
        }
    }
}
